Rでxlsxファイルの読み込み

xlsxファイル例

test.xlsxというファイルの3枚のシートに下記内容のデータが保存されているとする.

  • 1枚目のシートは1つの表がある
  • 2枚目のシートはシート名前がH26であり、変数名が日本語
  • 3枚目のシートは複数の表がある

sheet1 sheet1 sheet1

準備:JAVAとxlsxパッケージのインストール

Rのバージョン(64bit or 32bit)に対応したJAVAをダウンロードしてインストール. ここでは64bit版のRの場合を想定する.
java8 からWindows x64(64bit版)のJAVAであるjdk-8-windows-x64.exeをダウンロードしてインストールする. 続いて、Rでxlsxパッケージの読み込み.

library(xlsx)

read.xlsx()関数の使い方

read.xlsx()関数でエクセルのxlsxファイルをRで読み込むことができる. 基本はread.xlsx("[ファイル名]",sheetIndex=[シート番号])でxlsxファイルの名前とシート番号を指定する.

read.xlsx("test.xlsx",sheetIndex=1)
##   X Y
## 1 1 1
## 2 2 4
## 3 3 9

sheetIndexでシート番号を指定する代わりに、sheetNameでシート名で指定することもできる.

read.xlsx("test.xlsx",sheetName="Sheet1")
##   X Y
## 1 1 1
## 2 2 4
## 3 3 9

日本語が変数名にある場合は文字化けする.

read.xlsx("test.xlsx",sheetIndex="H26")
##   蟷?蠎? 莠?蜿.
## 1   2014     10
## 2   2013      5

encoding="UTF=8"とすれば回避できる.

read.xlsx("test.xlsx",sheetIndex="H26",encoding="UTF-8")
##   年度 人口
## 1 2014   10
## 2 2013    5

1枚のシートの中に複数の表がある場合は、全て読み込まれてしまう.

read.xlsx("test.xlsx",sheetIndex=3)
##   X Y    Z
## 1 1 1    A
## 2 2 2    B
## 3 Z W <NA>
## 4 1 1 <NA>
## 5 2 2 <NA>

読み込む行の開始と終了をstartRowendRowで指定することで、特定の表のみ読み込むことができる.

read.xlsx("test.xlsx",sheetIndex=3,startRow=1,endRow=3)
##   X Y Z
## 1 1 1 A
## 2 2 2 B